<?php

class User_Action_Password_Reset extends Action
{
	function execute($request)
	{
		$form = new Form_User_Password_Reset;

		$code = $request -> getParam('code');

		$db = Mongo_Database::instance() -> selectCollection('user_forgetpassword');

		$item = $db -> findOne(array('_id' => $code));

		$user = null;

		if (null == $item)
		{
			$cid = 'INVALID';
		}
		else
		if ($item['expired_time'] < time())
		{
			$cid = 'EXPIRED';
		}
		else
		if ($item['user_id'])
		{
			$cid = NULL;
			$user = Document::factory('user', $item['user_id']);
		}
		else
		{
			$cid = 'INVALID';
		}


		if ($item && $user)
		{

			if ($request -> isPost() && $form -> isValid($_POST))
			{
				$values = $form -> getData();

				if ($values['password'] == $values['password2'])
				{
					$user -> setPassword($values['password']);
					$message = 'Mật khẩu của bạn đã được cập nhật';
					$user -> save($safe = true);
					$db -> remove(array('_id' => $code));

				}

			}
		}
		$request -> response = View::render('user/html/password/reset', array(
			'form' => $form,
			'cid' => $cid,
			'code' => $code,
			'message' => $message
		));
	}

}
